f930377f38488a20e3b11894a83a07892a49a66a,tests/frontend/org/voltdb/regressionsuites/TestFunctionsForVoltDBSuite.java,TestFunctionsForVoltDBSuite,testCoalesce,#,1856

Before Change


        doTestCoalescePairBothNull(cl, "I1", "I2");
        doTestCoalescePairBothNull(cl, "F1", "F2");
        doTestCoalescePairBothNull(cl, "D1", "D2");
        doTestCoalescePairBothNull(cl, "V1", "V2");
        doTestCoalescePairBothNull(cl, "T1", "T2");

        doTestCoalescePairOneNull(cl, "I1", "I2");
        doTestCoalescePairOneNull(cl, "F1", "F2");
        doTestCoalescePairOneNull(cl, "D1", "D2");
        doTestCoalescePairOneNull(cl, "V1", "V2");
        doTestCoalescePairOneNull(cl, "T1", "T2");

        doTestCoalescePairNotNull(cl, "I1", "I2");
        doTestCoalescePairNotNull(cl, "F1", "F2");
        doTestCoalescePairNotNull(cl, "D1", "D2");
        doTestCoalescePairNotNull(cl, "V1", "V2");
        doTestCoalescePairNotNull(cl, "T1", "T2");

After Change


                                              3,3,3,"3",new Timestamp(3000000000000L));

        doTestTwoColCoalesce(cl, "I1", "I2");
        doTestTwoColCoalesce(cl, "F1", "F2");
        doTestTwoColCoalesce(cl, "D1", "D2");
        doTestTwoColCoalesce(cl, "V1", "V2");
        doTestTwoColCoalesce(cl, "T1", "T2");

        doTestThreeColCoalesce(cl, "I1", "I2", "I3", "100");
        doTestThreeColCoalesce(cl, "F1", "F2", "F3", "100.0");
        doTestThreeColCoalesce(cl, "D1", "D2", "D3", "100.0");
        doTestThreeColCoalesce(cl, "V1", "V2", "V3", "'hahaha'");
        doTestThreeColCoalesce(cl, "T1", "T2", "T3", "CAST ('2014-07-09 00:00:00.000000' as TIMESTAMP)");

        // test compatiable types
        doTestThreeColCoalesce(cl, "S1", "I2", "I3", "100");
        doTestThreeColCoalesce(cl, "S1", "F2", "D3", "100.0");
        doTestThreeColCoalesce(cl, "I1", "F2", "D3", "100.0");

        // test incompatiable types
        // TODO: Is the exception throwed by coalesce? Or by decode?
        try {
            doTestThreeColCoalesce(cl, "S1", "I2", "V3", "100");
            fail();
        } catch (ProcCallException pcex){
            assertTrue(pcex.getMessage().contains("incompatible data types"));